1. Technical Field
The subject matter described herein relates to systems and methods for performing joint source channel decoding.
2. Background Art
The concept of channel capacity was introduced in C. E. Shannon, “A Mathematical Theory of Communication,” Bell System Technical Journal, vol. 27, pp. 379-423 and 623-656, July and October, 1948. In this work, Shannon stated that a source with entropy H can be reliably transmitted over a channel with capacity C as long as H<=C. Shannon also introduced the Separation Theorem which stated that the maximum capacity is achievable by treating the source and channel independently. In accordance with this model, and referring to FIG. 1, a source coder is first applied to reduce the rate down to H, and a channel code is subsequently applied (e.g., in a system 102). At the receiver, the channel decoder is unaware of the type of source and outputs the most probable codeword (e.g., in system 102). The source decoder then reconstructs the source without any knowledge of the source statistics (e.g., in system 102).
However, Shannon's Separation Theorem only holds true in the case of infinite complexity and delay, as well as a non time varying (AWGN) channel. When operating with finite complexity and delay on a channel that may vary in time (fading), better performance is generally achievable by jointly optimizing the source and channel coder. In Joint Source-Channel Coding (JSCC), the source and channel are jointly encoded, while in Joint Source-Channel Decoding (JSCD), the source and channel are jointly decoded. These cases are depicted in FIG. 1 as systems 104 and 106, respectively. Of course, a system may also employ both JSCC and JSCD. However, most communications systems employed to date employ little JSCC or no JSCC. Significant gains can still be achieved in these systems by incorporating JSCD.
In audio applications, data packets or data frames that include audio content and have been properly decoded by a channel decoder may be stored in a jitter buffer prior to being passed to a speech decoder. This may help maintain a smooth audio output through the speech decoder. A jitter buffer may also allow for the insertion of received out-of-order packets into the data stream. However, to date, jitter buffers and the delay inherent therein have not been exploited to perform JSCD.